Skip to content

Conversation

@RKSimon
Copy link
Collaborator

@RKSimon RKSimon commented Sep 9, 2025

Now that they wrap the __builtin_elementwise_fshl/fshr builtin intrinsics this is pretty trivial.

Just one more step towards #153152 - just VBMI2 funnel shifts by immediate

Now that they wrap the __builtin_elementwise_fshl/fshr builtin intrinsics this is pretty trivial.

Just one more step towards llvm#153152 - just VBMI2 funnel shifts by immediate
@llvmbot llvmbot added clang Clang issues not falling into any other category backend:X86 clang:headers Headers provided by Clang, e.g. for intrinsics labels Sep 9, 2025
@llvmbot
Copy link
Member

llvmbot commented Sep 9, 2025

@llvm/pr-subscribers-clang

@llvm/pr-subscribers-backend-x86

Author: Simon Pilgrim (RKSimon)

Changes

Now that they wrap the __builtin_elementwise_fshl/fshr builtin intrinsics this is pretty trivial.

Just one more step towards #153152 - just VBMI2 funnel shifts by immediate


Patch is 57.78 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/157668.diff

4 Files Affected:

  • (modified) clang/lib/Headers/avx512vbmi2intrin.h (+25-18)
  • (modified) clang/lib/Headers/avx512vlvbmi2intrin.h (+46-37)
  • (modified) clang/test/CodeGen/X86/avx512vbmi2-builtins.c (+19)
  • (modified) clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c (+37)
diff --git a/clang/lib/Headers/avx512vbmi2intrin.h b/clang/lib/Headers/avx512vbmi2intrin.h
index 012053332c539..a24b6e592197c 100644
--- a/clang/lib/Headers/avx512vbmi2intrin.h
+++ b/clang/lib/Headers/avx512vbmi2intrin.h
@@ -19,6 +19,12 @@
   __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"),    \
                  __min_vector_width__(512)))
 
+#if defined(__cplusplus) && (__cplusplus >= 201103L)
+#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
+#else
+#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
+#endif
+
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_mask_compress_epi16(__m512i __S, __mmask32 __U, __m512i __D)
 {
@@ -213,14 +219,14 @@ _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P)
                                     (__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \
                                     (__v32hi)_mm512_setzero_si512()))
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_elementwise_fshl((__v8du)__A, (__v8du)__B,
                                              (__v8du)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectq_512(__U,
@@ -228,7 +234,7 @@ _mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
                                       (__v8di)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectq_512(__U,
@@ -236,14 +242,14 @@ _mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
                                       (__v8di)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_elementwise_fshl((__v16su)__A, (__v16su)__B,
                                              (__v16su)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectd_512(__U,
@@ -251,7 +257,7 @@ _mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
                                      (__v16si)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectd_512(__U,
@@ -259,14 +265,14 @@ _mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
                                      (__v16si)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_elementwise_fshl((__v32hu)__A, (__v32hu)__B,
                                              (__v32hu)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectw_512(__U,
@@ -274,7 +280,7 @@ _mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
                                      (__v32hi)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectw_512(__U,
@@ -282,7 +288,7 @@ _mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
                                      (__v32hi)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C)
 {
   // Ops __A and __B are swapped.
@@ -290,7 +296,7 @@ _mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C)
                                              (__v8du)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectq_512(__U,
@@ -298,7 +304,7 @@ _mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
                                       (__v8di)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectq_512(__U,
@@ -306,7 +312,7 @@ _mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
                                       (__v8di)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C)
 {
   // Ops __A and __B are swapped.
@@ -314,7 +320,7 @@ _mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C)
                                              (__v16su)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
 {
   return (__m512i) __builtin_ia32_selectd_512(__U,
@@ -322,7 +328,7 @@ _mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
                                      (__v16si)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i) __builtin_ia32_selectd_512(__U,
@@ -330,7 +336,7 @@ _mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
                                      (__v16si)_mm512_setzero_si512());
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C)
 {
   // Ops __A and __B are swapped.
@@ -338,7 +344,7 @@ _mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C)
                                              (__v32hu)__C);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectw_512(__U,
@@ -346,7 +352,7 @@ _mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
                                      (__v32hi)__A);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
+static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
 _mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
 {
   return (__m512i)__builtin_ia32_selectw_512(__U,
@@ -356,6 +362,7 @@ _mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
 
 
 #undef __DEFAULT_FN_ATTRS
+#undef __DEFAULT_FN_ATTRS_CONSTEXPR
 
 #endif
 
diff --git a/clang/lib/Headers/avx512vlvbmi2intrin.h b/clang/lib/Headers/avx512vlvbmi2intrin.h
index 3d6e99b2f0bd8..da295d2a12e62 100644
--- a/clang/lib/Headers/avx512vlvbmi2intrin.h
+++ b/clang/lib/Headers/avx512vlvbmi2intrin.h
@@ -24,6 +24,14 @@
                  __target__("avx512vl,avx512vbmi2"),                           \
                  __min_vector_width__(256)))
 
+#if defined(__cplusplus) && (__cplusplus >= 201103L)
+#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
+#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
+#else
+#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
+#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
+#endif
+
 static __inline__ __m128i __DEFAULT_FN_ATTRS128
 _mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D)
 {
@@ -412,14 +420,14 @@ _mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P)
                                        (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \
                                        (__v8hi)_mm_setzero_si128()))
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_elementwise_fshl((__v4du)__A, (__v4du)__B,
                                              (__v4du)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectq_256(__U,
@@ -427,7 +435,7 @@ _mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
                                       (__v4di)__A);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectq_256(__U,
@@ -435,14 +443,14 @@ _mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
                                       (__v4di)_mm256_setzero_si256());
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_elementwise_fshl((__v2du)__A, (__v2du)__B,
                                              (__v2du)__C);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectq_128(__U,
@@ -450,7 +458,7 @@ _mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
                                          (__v2di)__A);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectq_128(__U,
@@ -458,14 +466,14 @@ _mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
                                          (__v2di)_mm_setzero_si128());
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_elementwise_fshl((__v8su)__A, (__v8su)__B,
                                              (__v8su)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectd_256(__U,
@@ -473,7 +481,7 @@ _mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
                                       (__v8si)__A);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectd_256(__U,
@@ -481,14 +489,14 @@ _mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
                                       (__v8si)_mm256_setzero_si256());
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_elementwise_fshl((__v4su)__A, (__v4su)__B,
                                              (__v4su)__C);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectd_128(__U,
@@ -496,7 +504,7 @@ _mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
                                          (__v4si)__A);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectd_128(__U,
@@ -504,14 +512,14 @@ _mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
                                          (__v4si)_mm_setzero_si128());
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_elementwise_fshl((__v16hu)__A, (__v16hu)__B,
                                              (__v16hu)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectw_256(__U,
@@ -519,7 +527,7 @@ _mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
                                       (__v16hi)__A);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectw_256(__U,
@@ -527,14 +535,14 @@ _mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
                                       (__v16hi)_mm256_setzero_si256());
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_elementwise_fshl((__v8hu)__A, (__v8hu)__B,
                                              (__v8hu)__C);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectw_128(__U,
@@ -542,7 +550,7 @@ _mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
                                          (__v8hi)__A);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectw_128(__U,
@@ -550,7 +558,7 @@ _mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
                                          (__v8hi)_mm_setzero_si128());
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C)
 {
   // Ops __A and __B are swapped.
@@ -558,7 +566,7 @@ _mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C)
                                              (__v4du)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectq_256(__U,
@@ -566,7 +574,7 @@ _mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
                                       (__v4di)__A);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectq_256(__U,
@@ -574,7 +582,7 @@ _mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
                                       (__v4di)_mm256_setzero_si256());
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C)
 {
   // Ops __A and __B are swapped.
@@ -582,7 +590,7 @@ _mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C)
                                              (__v2du)__C);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectq_128(__U,
@@ -590,7 +598,7 @@ _mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
                                          (__v2di)__A);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectq_128(__U,
@@ -598,7 +606,7 @@ _mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
                                          (__v2di)_mm_setzero_si128());
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C)
 {
   // Ops __A and __B are swapped.
@@ -606,7 +614,7 @@ _mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C)
                                              (__v8su)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectd_256(__U,
@@ -614,7 +622,7 @@ _mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
                                       (__v8si)__A);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
 {
   return (__m256i)__builtin_ia32_selectd_256(__U,
@@ -622,7 +630,7 @@ _mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
                                       (__v8si)_mm256_setzero_si256());
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C)
 {
   // Ops __A and __B are swapped.
@@ -630,7 +638,7 @@ _mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C)
                                              (__v4su)__C);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectd_128(__U,
@@ -638,7 +646,7 @@ _mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
                                          (__v4si)__A);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS128
+static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
 {
   return (__m128i)__builtin_ia32_selectd_128(__U,
@@ -646,7 +654,7 @@ _mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
                                          (__v4si)_mm_setzero_si128());
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
 _mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C)
 {
   // Ops __A and __B are swapped.
@@ -654,7 +662,7 @@ _mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C)
                                              (__v16hu)__C);
 }
 
-static __inline__ __m256i __DEFAULT_FN_ATTRS256
+static __inline__ __m256i __D...
[truncated]

@github-actions
Copy link

github-actions bot commented Sep 9, 2025

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff origin/main HEAD --extensions h,c -- clang/lib/Headers/avx512vbmi2intrin.h clang/lib/Headers/avx512vlvbmi2intrin.h clang/test/CodeGen/X86/avx512vbmi2-builtins.c clang/test/CodeGen/X86/avx512vlvbmi2-builtins.c

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from clang-format here.
diff --git a/clang/lib/Headers/avx512vbmi2intrin.h b/clang/lib/Headers/avx512vbmi2intrin.h
index a24b6e592..02052d6ed 100644
--- a/clang/lib/Headers/avx512vbmi2intrin.h
+++ b/clang/lib/Headers/avx512vbmi2intrin.h
@@ -220,147 +220,128 @@ _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P)
                                     (__v32hi)_mm512_setzero_si512()))
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_elementwise_fshl((__v8du)__A, (__v8du)__B,
                                              (__v8du)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectq_512(__U,
                                       (__v8di)_mm512_shldv_epi64(__A, __B, __C),
                                       (__v8di)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectq_512(__U,
                                       (__v8di)_mm512_shldv_epi64(__A, __B, __C),
                                       (__v8di)_mm512_setzero_si512());
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_elementwise_fshl((__v16su)__A, (__v16su)__B,
                                              (__v16su)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectd_512(__U,
                                      (__v16si)_mm512_shldv_epi32(__A, __B, __C),
                                      (__v16si)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectd_512(__U,
                                      (__v16si)_mm512_shldv_epi32(__A, __B, __C),
                                      (__v16si)_mm512_setzero_si512());
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_elementwise_fshl((__v32hu)__A, (__v32hu)__B,
                                              (__v32hu)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectw_512(__U,
                                      (__v32hi)_mm512_shldv_epi16(__A, __B, __C),
                                      (__v32hi)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectw_512(__U,
                                      (__v32hi)_mm512_shldv_epi16(__A, __B, __C),
                                      (__v32hi)_mm512_setzero_si512());
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C) {
   // Ops __A and __B are swapped.
   return (__m512i)__builtin_elementwise_fshr((__v8du)__B, (__v8du)__A,
                                              (__v8du)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectq_512(__U,
                                       (__v8di)_mm512_shrdv_epi64(__A, __B, __C),
                                       (__v8di)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectq_512(__U,
                                       (__v8di)_mm512_shrdv_epi64(__A, __B, __C),
                                       (__v8di)_mm512_setzero_si512());
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C) {
   // Ops __A and __B are swapped.
   return (__m512i)__builtin_elementwise_fshr((__v16su)__B, (__v16su)__A,
                                              (__v16su)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) {
   return (__m512i) __builtin_ia32_selectd_512(__U,
                                      (__v16si)_mm512_shrdv_epi32(__A, __B, __C),
                                      (__v16si)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i) __builtin_ia32_selectd_512(__U,
                                      (__v16si)_mm512_shrdv_epi32(__A, __B, __C),
                                      (__v16si)_mm512_setzero_si512());
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C) {
   // Ops __A and __B are swapped.
   return (__m512i)__builtin_elementwise_fshr((__v32hu)__B, (__v32hu)__A,
                                              (__v32hu)__C);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
-{
+_mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectw_512(__U,
                                      (__v32hi)_mm512_shrdv_epi16(__A, __B, __C),
                                      (__v32hi)__A);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
-{
+_mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) {
   return (__m512i)__builtin_ia32_selectw_512(__U,
                                      (__v32hi)_mm512_shrdv_epi16(__A, __B, __C),
                                      (__v32hi)_mm512_setzero_si512());
 }
 
-
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS_CONSTEXPR
 
diff --git a/clang/lib/Headers/avx512vlvbmi2intrin.h b/clang/lib/Headers/avx512vlvbmi2intrin.h
index da295d2a1..f1b133303 100644
--- a/clang/lib/Headers/avx512vlvbmi2intrin.h
+++ b/clang/lib/Headers/avx512vlvbmi2intrin.h
@@ -421,282 +421,246 @@ _mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P)
                                        (__v8hi)_mm_setzero_si128()))
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_elementwise_fshl((__v4du)__A, (__v4du)__B,
                                              (__v4du)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectq_256(__U,
                                       (__v4di)_mm256_shldv_epi64(__A, __B, __C),
                                       (__v4di)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectq_256(__U,
                                       (__v4di)_mm256_shldv_epi64(__A, __B, __C),
                                       (__v4di)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_elementwise_fshl((__v2du)__A, (__v2du)__B,
                                              (__v2du)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectq_128(__U,
                                          (__v2di)_mm_shldv_epi64(__A, __B, __C),
                                          (__v2di)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectq_128(__U,
                                          (__v2di)_mm_shldv_epi64(__A, __B, __C),
                                          (__v2di)_mm_setzero_si128());
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_elementwise_fshl((__v8su)__A, (__v8su)__B,
                                              (__v8su)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectd_256(__U,
                                       (__v8si)_mm256_shldv_epi32(__A, __B, __C),
                                       (__v8si)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectd_256(__U,
                                       (__v8si)_mm256_shldv_epi32(__A, __B, __C),
                                       (__v8si)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_elementwise_fshl((__v4su)__A, (__v4su)__B,
                                              (__v4su)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectd_128(__U,
                                          (__v4si)_mm_shldv_epi32(__A, __B, __C),
                                          (__v4si)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectd_128(__U,
                                          (__v4si)_mm_shldv_epi32(__A, __B, __C),
                                          (__v4si)_mm_setzero_si128());
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_elementwise_fshl((__v16hu)__A, (__v16hu)__B,
                                              (__v16hu)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectw_256(__U,
                                       (__v16hi)_mm256_shldv_epi16(__A, __B, __C),
                                       (__v16hi)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectw_256(__U,
                                       (__v16hi)_mm256_shldv_epi16(__A, __B, __C),
                                       (__v16hi)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_elementwise_fshl((__v8hu)__A, (__v8hu)__B,
                                              (__v8hu)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectw_128(__U,
                                          (__v8hi)_mm_shldv_epi16(__A, __B, __C),
                                          (__v8hi)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectw_128(__U,
                                          (__v8hi)_mm_shldv_epi16(__A, __B, __C),
                                          (__v8hi)_mm_setzero_si128());
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C) {
   // Ops __A and __B are swapped.
   return (__m256i)__builtin_elementwise_fshr((__v4du)__B, (__v4du)__A,
                                              (__v4du)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectq_256(__U,
                                       (__v4di)_mm256_shrdv_epi64(__A, __B, __C),
                                       (__v4di)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectq_256(__U,
                                       (__v4di)_mm256_shrdv_epi64(__A, __B, __C),
                                       (__v4di)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C) {
   // Ops __A and __B are swapped.
   return (__m128i)__builtin_elementwise_fshr((__v2du)__B, (__v2du)__A,
                                              (__v2du)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectq_128(__U,
                                          (__v2di)_mm_shrdv_epi64(__A, __B, __C),
                                          (__v2di)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectq_128(__U,
                                          (__v2di)_mm_shrdv_epi64(__A, __B, __C),
                                          (__v2di)_mm_setzero_si128());
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C) {
   // Ops __A and __B are swapped.
   return (__m256i)__builtin_elementwise_fshr((__v8su)__B, (__v8su)__A,
                                              (__v8su)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectd_256(__U,
                                       (__v8si)_mm256_shrdv_epi32(__A, __B, __C),
                                       (__v8si)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectd_256(__U,
                                       (__v8si)_mm256_shrdv_epi32(__A, __B, __C),
                                       (__v8si)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C) {
   // Ops __A and __B are swapped.
   return (__m128i)__builtin_elementwise_fshr((__v4su)__B, (__v4su)__A,
                                              (__v4su)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectd_128(__U,
                                          (__v4si)_mm_shrdv_epi32(__A, __B, __C),
                                          (__v4si)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectd_128(__U,
                                          (__v4si)_mm_shrdv_epi32(__A, __B, __C),
                                          (__v4si)_mm_setzero_si128());
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C) {
   // Ops __A and __B are swapped.
   return (__m256i)__builtin_elementwise_fshr((__v16hu)__B, (__v16hu)__A,
                                              (__v16hu)__C);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_shrdv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
-{
+_mm256_mask_shrdv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectw_256(__U,
                                      (__v16hi)_mm256_shrdv_epi16(__A, __B, __C),
                                      (__v16hi)__A);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
-{
+_mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) {
   return (__m256i)__builtin_ia32_selectw_256(__U,
                                      (__v16hi)_mm256_shrdv_epi16(__A, __B, __C),
                                      (__v16hi)_mm256_setzero_si256());
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_shrdv_epi16(__m128i __A, __m128i __B, __m128i __C)
-{
+_mm_shrdv_epi16(__m128i __A, __m128i __B, __m128i __C) {
   // Ops __A and __B are swapped.
   return (__m128i)__builtin_elementwise_fshr((__v8hu)__B, (__v8hu)__A,
                                              (__v8hu)__C);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_shrdv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
-{
+_mm_mask_shrdv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectw_128(__U,
                                          (__v8hi)_mm_shrdv_epi16(__A, __B, __C),
                                          (__v8hi)__A);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
-{
+_mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) {
   return (__m128i)__builtin_ia32_selectw_128(__U,
                                          (__v8hi)_mm_shrdv_epi16(__A, __B, __C),
                                          (__v8hi)_mm_setzero_si128());

@RKSimon RKSimon merged commit 17abebe into llvm:main Sep 9, 2025
12 of 13 checks passed
@RKSimon RKSimon deleted the x86-avx512-funnelshift-constexpr branch September 9, 2025 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:X86 clang:headers Headers provided by Clang, e.g. for intrinsics clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants